linux vim 终端 行首 行尾 您所在的位置:网站首页 vim 返回首行 linux vim 终端 行首 行尾

linux vim 终端 行首 行尾

2024-05-30 11:09| 来源: 网络整理| 查看: 265

本文来自于Linux命令行第13章。

为什么要学习vim:

1.Vim很多linux系统都预装

2.Vim轻量级且执行快,里面的功能和快捷键强大,当一名熟练的 vi 用户在编辑文件时,他或她的手从不需要移开键盘,同时vim也可以作为多种语言的编辑器,支持补全等操作,十分方便。

启动和退出vim

对于启动vim,只需要在终端中输入以下命令:

vim

此时vim启动,对于vim来说,有两个模式,一个是命令模式,另一个是编辑模式,当我们在命令模式时输入i即可进入编辑模式,此时和正常文档一样可以编辑,按esc键可以退出编辑模式,回到命令模式。

在命令模式中我们才可以退出vim,编辑模式中不可,这是初学者要注意的地方(我一开始就是不清楚被这个搞得很烦)。在命令模式中,输入以下命令可退出vim:

:q

前面的冒号是命令的一部分,如果我们对文件进行了修改,但未保存,给此命令最后加一个感叹号,即可确认退出vim。

:q! 编辑模式

给vim传递一个不存在的文件名,我们即可新建一个文件,如果给vim传递一个已有的文件名,即对此文件进行修改,下面我们创建一个新的文件:

[me@linuxbox ~]$ rm -f foo.txt [me@linuxbox ~]$ vim foo.txt

如果正常,我们会得到一个这样的屏幕

3d250553737ea9f7ba4ca1ab82f79a76.png

4a80c4e1f337bcc90ffa5e05eeb3555d.png

每行开头的~表示那一行有一个空文件。

此时我们处于命令模式,不要胡乱输入我们需要的文本,因为未进入编辑模式,此时键盘几乎每个输入都是命令,如果直接输入文本,会使vim很混乱。

插入模式

为了对文件进行编辑,我们需要在命令模式中键入i进行编辑模式。

5f21c685eb040dd7e58910f7b0cdc2bf.png

此时在屏幕能看到如上信息。

现在即可输入文本,在光标位置即可输入我们想要的文本。要退出插入(编辑)模式回到命令模式,按下esc键即可。

对于之前的修改,要进行保存需要在命令模式中键入以下命令:

:w 移动光标

在命令模式中,我们可以用以下命令进行光标移动,注意之后的方法都区分大小写

50f8c80eddb45c5ab556652435fe5eb0.png 基本编辑

vim可以通过命令模式进行剪切,移动和粘贴文本,也可以提供撤销功能,命令模式中,按住u即可撤销最后一次修改。

追加文本

我们进入vim编辑模式中,假设我们有以下foo.txt文件,文件内容如下:

The quick brown fox jumped over the lazy dog.

如果我们想要在这个句子的末尾添加一些文本,我们会发现 i 命令不能完成任务,因为我们 不能把光标移到行尾。vi 提供了追加文本的命令,明智地命名为 “a”。如果我们把光标移动到 行尾,输入”a”, 光标就会越过行尾,同时 vi 会进入插入模式。这让我们能添加文本到行末:

The quick brown fox jumped over the lazy dog. It was cool.

vim中将光标移动到行首和行尾的快捷键分别是"0"(不能是数字键盘的)和"A"。

打开一行

我们可以在vim中输入以下命令,向前或向后插入一行。

bfa7a053c8f1fc3f2b784b20c852a109.png 删除文本

vim提供以下在命令模式中删除文本的命令:

9b81f44903abe0a212f2d05e6c6a4453.png 剪切,复制和粘贴文本

vim中粘贴快捷键为p,“p”命令为把剪切板中的文件粘贴到光标之后,"P"命令把文件粘贴到光标之前。剪切命令即是之前的删除命令。

下面我们看一下vim中的复制命令:

7b609b3c4842b0dc5052681ba71feea3.png 连接行

vim中连接行使用“J”,将下一行的内容复制到当前行。

查找与替换

vim可以在一行进行搜索,也可以在全局进行搜索和替换。

查找一行

f 命令能搜索一特定行,并将光标移动到下一个匹配的字符上。例如,命令 fa 会把光标定位到 同一行中下一个出现的 “a” 字符上。在进行了一次行内搜索后,输入分号能重复这次搜索。

查找整个文件

移动光标到下一个出现的单词或短语上,使用 / 命令。这个命令和 less 程序一样。当你输入/命令后,一个 “/” 字符会出现在屏幕底部。接下来,输入要查找的单词或 短语,按下回车。光标就会移动到下一个包含所查找字符串的位置。通过 n 命令来重复先前的查找。

全局查找和替代

vi 使用 ex 命令来执行查找和替代操作(vi 中叫做“替换”)。将整个文件中的单词“Line”更改 为“line”,输入以下命令:

:%s/Line/line/g

这行命令可以分解为几部分,每部分定义如下:

d89357c8aca9aa2cbb0940a3686a7b5d.png

我们也可以指定一个需要用户确认的替换命令。通过添加一个 “c” 字符到这个命令的末尾, 来完成这个替换命令。例如:

:%s/line/Line/gc

这时vim会提示我们确认信息:

replace with Line (y/n/a/q/l/^E/^Y)?

选择的含义如下:

699e9eb89f422491345ad61a0fecef85.png 编辑多个文件

vim支持同时打开多个文件,这时我们可以跨文件操作,如复制粘贴,vim打开多个文件很简单,如下:

vim file1 file2.... 文件之间切换

一个文件切换到下一个文件,回到之前的文件分别用这两个命令:

:n :N

当我们从一个文件移到另一个文件时,如果当前文件没有保存修改,vi 会阻止我们切换文 件,这是 vi 强制执行的政策。在命令之后添加感叹号,可以强迫 vi 放弃修改而转换文件。

如果我们想看到现在在编辑的文件列表,可以输入以下命令:

:buffers

要切换到另一个缓冲区(文件),输入:buffer, 紧跟着你想要编辑的缓冲器编号。

:buffer 2

在我们的当前的编辑会话里也能添加别的文件。ex 命令:e (编辑 (edit) 的简写) 紧跟要打开的 文件名将会打开另外一个文件。

我们可以这样在已编辑的文件中打开一个新的文件:

:e shoudao.txt 跨文件复制粘贴

和之前没有区别,只需要在复制时将当前文件切换到需要粘贴的文件即可。

插入整个文件到另一个文件

这里使用:r命令,在当前光标前输入以下命令:

:r foo.txt

就可以将foo.txt中的文件插入当前光标前。

保存工作

之前提到了:w命令可以保存工作,也可以通过:wq保存文件并退出。

:w命令也可以指定文件名,这个操作就如Save as命令,如果我们正在编辑foo.txt,输入以下命令:

:w foo1.txt

我们就将当前文件存了一个副本,注意此时继续编辑仍是在foo.txt文件。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有